package ar.edu.phm.tp.cuatro.planificacionDsl.validation

import ar.edu.phm.tp.cuatro.planificacionDsl.planificacion.Materia
import ar.edu.phm.tp.cuatro.planificacionDsl.planificacion.PlanificacionPackage
import javax.inject.Inject
import org.eclipse.xtext.validation.Check

class MateriaValidator extends AbstractPlanificacionValidator {
	@Inject extension ElistExtensionProvider

	public static val CANTIDAD_DE_DIAS_INVALIDO = "CANTIDAD_DE_DIAS_INVALIDO"

	@Check
	def cantidadDeDias(Materia materia) {
		if (materia.dias < 1 || materia.dias > 7)
			error('La cantidad de dias debe ser entre 1 y 7', materia, PlanificacionPackage.Literals.MATERIA__DIAS,
				CANTIDAD_DE_DIAS_INVALIDO)
	}

	@Check
	def requisitosRepetidos(Materia materia) {
		if (materia.requisitos.hayRepetidos)
			error('La materia tiene requisitos repetidos', materia,	PlanificacionPackage.Literals.MATERIA__REQUISITOS, ElistExtensionProvider.HAY_REPETIDOS)
	}

}
